// This example shows how to read 4 items from an OPC XML-DA server at once, and display their values, timestamps // and qualities. using System; using System.Diagnostics; using OpcLabs.EasyOpc; using OpcLabs.EasyOpc.DataAccess; using OpcLabs.EasyOpc.DataAccess.OperationModel; namespace DocExamples.DataAccess.Xml { class ReadMultipleItems { public static void Main1Xml() { // Instantiate the client object. var client = new EasyDAClient(); DAVtqResult[] vtqResults = client.ReadMultipleItems( new ServerDescriptor { UrlString = "http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx" }, new DAItemDescriptor[] { "Dynamic/Analog Types/Double", "Dynamic/Analog Types/Double[]", "Dynamic/Analog Types/Int", "SomeUnknownItem" }); for (int i = 0; i < vtqResults.Length; i++) { Debug.Assert(vtqResults[i] != null); if (!(vtqResults[i].Exception is null)) { Console.WriteLine($"vtqResults[{i}] *** Failure: {vtqResults[i].ErrorMessageBrief}"); continue; } Console.WriteLine($"vtqResults[{i}].Vtq: {vtqResults[i].Vtq}"); } } } }
# This example shows how to read 4 items from an OPC XML-DA server at once, and display their values, timestamps # and qualities. #requires -Version 5.1 using namespace OpcLabs.EasyOpc using namespace OpcLabs.EasyOpc.DataAccess # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassicCore.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassic.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassicComponents.dll" # Instantiate the client object. $client = New-Object EasyDAClient $serverDescriptor = New-Object ServerDescriptor -Property @{ UrlString = "http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx" } $vtqResults = [IEasyDAClientExtension]::ReadMultipleItems($client, $serverDescriptor, @( (New-Object DAItemDescriptor("Dynamic/Analog Types/Double")), (New-Object DAItemDescriptor("Dynamic/Analog Types/Double[]")), (New-Object DAItemDescriptor("Dynamic/Analog Types/Int")), (New-Object DAItemDescriptor("SomeUnknownItem")) )) for ($i = 0; $i -lt $vtqResults.Length; $i++) { $vtqResult = $vtqResults[$i] if ($vtqResult.Succeeded) { Write-Host "vtqResults[$($i)].Vtq: $($vtqResult.Vtq)" } else { Write-Host "vtqResults[$($i)] *** Failure: $($vtqResult.ErrorMessageBrief)" } }
# This example shows how to read 4 items from an OPC XML-DA server at once, and display their values, timestamps # and qualities. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.EasyOpc import * from OpcLabs.EasyOpc.DataAccess import * from OpcLabs.EasyOpc.DataAccess.OperationModel import * from OpcLabs.EasyOpc.OperationModel import * # Instantiate the client object. client = EasyDAClient() # vtqResultArray = IEasyDAClientExtension.ReadMultipleItems(client, ServerDescriptor('http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx'), [ DAItemDescriptor('Dynamic/Analog Types/Double'), DAItemDescriptor('Dynamic/Analog Types/Double[]'), DAItemDescriptor('Dynamic/Analog Types/Int'), DAItemDescriptor('SomeUnknownItem') ]) for i, vtqResult in enumerate(vtqResultArray): assert vtqResult is not None if vtqResult.Succeeded: print('vtqResultArray[', i, '].Vtq: ', vtqResult.Vtq, sep='') else: print('vtqResultArray[', i, '] *** Failure: ', vtqResult.ErrorMessageBrief, sep='') print() print('Finished.')
' This example shows how to read 4 items from an OPC XML-DA server at once, and display their values, timestamps ' and qualities. Imports OpcLabs.EasyOpc Imports OpcLabs.EasyOpc.DataAccess Imports OpcLabs.EasyOpc.DataAccess.OperationModel Namespace DataAccess.Xml Partial Friend Class ReadMultipleItems Public Shared Sub Main1Xml() Dim client = New EasyDAClient() Dim vtqResults() As DAVtqResult = client.ReadMultipleItems( New ServerDescriptor() With {.UrlString = "http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx"}, New DAItemDescriptor() _ { _ "Dynamic/Analog Types/Double", "Dynamic/Analog Types/Double[]", "Dynamic/Analog Types/Int", "SomeUnknownItem" }) For i = 0 To vtqResults.Length - 1 Debug.Assert(vtqResults(i) IsNot Nothing) If vtqResults(i).Exception IsNot Nothing Then Console.WriteLine("vtqResult[{0}] *** Failure: {1}", i, vtqResults(i).ErrorMessageBrief) Continue For End If Console.WriteLine("vtqResult[{0}].Vtq: {1}", i, vtqResults(i).Vtq) Next i End Sub End Class End Namespace
Copyright © 2004-2023 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base. Technical support: Online Forums, FAQ.